package com.star;

import java.util.*;


public class Solution {

    public static void main(String[] args) {
        Solution.decodeWangzai("a,b,c,d", 1);

        System.out.println(stopAtWho(new int[]{2, 1, 4, 5, 2, 3}, 3));
    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     * <p>
     * 进行凯撒解密
     *
     * @param password string字符串 旺仔哥哥的密码
     * @param n        int整型 每个字符加密过程中错位的次数
     * @return string字符串
     */
    public static String decodeWangzai(String password, int n) {
        // write code here
        StringBuilder stringBuilder = new StringBuilder();
        for (char c : password.toCharArray()) {
            char decode = (char) (c - n);
            if (decode < 'a') {
                decode = (char) (decode + 26);
            }
            stringBuilder.append(decode);
        }
        return stringBuilder.toString();
    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 整理出一个将序列中的数字以逗号隔开从而得到的字符串
     * @param a int整型一维数组 需要整理的序列 a
     * @return string字符串
     */
    public String commaTransformer (int[] a) {
        // write code here
        StringBuilder sb = new StringBuilder();
        if (a.length == 0) {
            return "";
        }else {
            for (int i = 0; i < a.length; i++) {
                sb.append(a[i]);
                if (i == a.length -1) continue;
                sb.append(",");
            }
        }

        return sb.toString();
    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 计算出旺仔哥哥最后会站在哪位小朋友旁边
     * @param a int整型一维数组 第 i 个小朋友的数字是 a_i
     * @param m int整型 表示旺仔哥哥的移动次数
     * @return int整型
     */
    public static int stopAtWho (int[] a, int m) {
        // write code here
        int length = a.length;
        int location = 0;
        for (int i = 0; i < m; i++) {
            int step = a[location];
            location = (location - step + length)%length;
        }
        return location + 1;
    }


}